go/types.operand.mode (field)

318 uses

	go/types (current package)
		api_predicates.go#L34: 	x := operand{mode: value, typ: V}
		api_predicates.go#L45: 	x := operand{mode: value, typ: V}
		assignments.go#L27: 	switch x.mode {
		assignments.go#L39: 		x.mode = invalid
		assignments.go#L54: 					x.mode = invalid
		assignments.go#L64: 					x.mode = invalid
		assignments.go#L82: 			x.mode = invalid
		assignments.go#L99: 		x.mode = invalid
		assignments.go#L117: 		x.mode = invalid
		assignments.go#L122: 	if x.mode == invalid || !isValid(x.typ) || !isValid(lhs.typ) {
		assignments.go#L130: 	if x.mode != constant_ {
		assignments.go#L145: 	if x.mode == invalid {
		assignments.go#L157: 	if x.mode == invalid || !isValid(x.typ) || !isValid(lhs.typ) {
		assignments.go#L161: 		x.mode = invalid
		assignments.go#L173: 				x.mode = invalid
		assignments.go#L222: 	if x.mode == invalid || !isValid(x.typ) {
		assignments.go#L228: 	switch x.mode {
		assignments.go#L237: 			if op.mode == mapindex {
		assignments.go#L256: 			x.mode = invalid
		assignments.go#L447: 		if commaOk && rhs[0].mode != invalid && rhs[1].mode != invalid {
		assignments.go#L455: 	if rhs[0].mode != invalid {
		assignments.go#L511: 		if commaOk && rhs[0].mode != invalid && rhs[1].mode != invalid {
		assignments.go#L519: 	if rhs[0].mode != invalid {
		builtins.go#L59: 			if a.mode == invalid {
		builtins.go#L146: 		x.mode = value
		builtins.go#L157: 				if x.mode == constant_ {
		builtins.go#L228: 		x.mode = mode
		builtins.go#L247: 		x.mode = novalue
		builtins.go#L268: 		x.mode = novalue
		builtins.go#L303: 			if x.mode == constant_ && y.mode == constant_ {
		builtins.go#L318: 		if x.mode == invalid || y.mode == invalid {
		builtins.go#L351: 		if x.mode == constant_ && y.mode == constant_ {
		builtins.go#L354: 			x.mode = value
		builtins.go#L357: 		if check.recordTypes() && x.mode != constant_ {
		builtins.go#L417: 		x.mode = value
		builtins.go#L444: 		if x.mode == invalid {
		builtins.go#L448: 		x.mode = novalue
		builtins.go#L459: 			if x.mode == constant_ {
		builtins.go#L472: 				if x.mode == invalid {
		builtins.go#L505: 		if x.mode == constant_ {
		builtins.go#L512: 			x.mode = value
		builtins.go#L515: 		if check.recordTypes() && x.mode != constant_ {
		builtins.go#L574: 		x.mode = value
		builtins.go#L591: 			if a.mode == invalid {
		builtins.go#L603: 				if x.mode == invalid {
		builtins.go#L612: 				if x.mode == constant_ && a.mode == constant_ {
		builtins.go#L617: 					x.mode = value
		builtins.go#L623: 		if x.mode != constant_ {
		builtins.go#L624: 			x.mode = value
		builtins.go#L627: 			if x.mode == invalid {
		builtins.go#L637: 		if check.recordTypes() && x.mode != constant_ {
		builtins.go#L651: 		switch x.mode {
		builtins.go#L662: 				if x.mode == invalid {
		builtins.go#L672: 		x.mode = value
		builtins.go#L694: 		if x.mode == invalid {
		builtins.go#L698: 		x.mode = novalue
		builtins.go#L711: 				if a.mode == invalid {
		builtins.go#L718: 		x.mode = novalue
		builtins.go#L725: 		x.mode = value
		builtins.go#L736: 		if x.mode == invalid {
		builtins.go#L745: 		x.mode = value
		builtins.go#L754: 		if x.mode == invalid {
		builtins.go#L759: 			x.mode = value
		builtins.go#L764: 			x.mode = constant_
		builtins.go#L782: 		if x.mode == invalid {
		builtins.go#L812: 			if x.mode == variable || indirect {
		builtins.go#L823: 			x.mode = value
		builtins.go#L833: 			x.mode = constant_
		builtins.go#L842: 		if x.mode == invalid {
		builtins.go#L847: 			x.mode = value
		builtins.go#L857: 			x.mode = constant_
		builtins.go#L879: 		x.mode = value
		builtins.go#L896: 		x.mode = value
		builtins.go#L907: 		if x.mode == invalid {
		builtins.go#L916: 		x.mode = value
		builtins.go#L927: 		if x.mode == invalid {
		builtins.go#L931: 		x.mode = value
		builtins.go#L941: 		if x.mode != constant_ || !isBoolean(x.typ) {
		builtins.go#L963: 			x.mode = novalue
		builtins.go#L973: 		if x.mode == invalid {
		builtins.go#L982: 	assert(x.mode != invalid)
		call.go#L53: 			x.mode = invalid
		call.go#L67: 		x.mode = invalid
		call.go#L104: 			args = []*operand{{mode: value, expr: expr, typ: T.sig}}
		call.go#L118: 			x.mode = invalid
		call.go#L128: 	x.mode = value
		call.go#L179: 			assert(x.mode == value)
		call.go#L190: 	switch x.mode {
		call.go#L199: 		if x.mode == invalid {
		call.go#L203: 		x.mode = invalid
		call.go#L209: 			if x.mode != invalid {
		call.go#L233: 			x.mode = invalid
		call.go#L237: 		if x.mode != invalid && x.mode != constant_ {
		call.go#L245: 	cgocall := x.mode == cgofunc
		call.go#L257: 		x.mode = invalid
		call.go#L274: 			x.mode = invalid
		call.go#L285: 			x.mode = invalid
		call.go#L317: 		x.mode = novalue
		call.go#L320: 			x.mode = commaerr
		call.go#L322: 			x.mode = value
		call.go#L326: 		x.mode = value
		call.go#L334: 	if x.mode == value && sig.TypeParams().Len() > 0 && isParameterized(sig.TypeParams().list(), x.typ) {
		call.go#L335: 		x.mode = invalid
		call.go#L410: 			if t, ok := x.typ.(*Tuple); ok && x.mode != invalid {
		call.go#L414: 					resList[i] = &operand{mode: value, expr: e, typ: v.typ}
		call.go#L748: 				x.mode = constant_
		call.go#L752: 				x.mode = typexpr
		call.go#L755: 				x.mode = variable
		call.go#L761: 				x.mode = funcMode
		call.go#L764: 					x.mode = value
		call.go#L768: 				x.mode = builtin
		call.go#L781: 	switch x.mode {
		call.go#L809: 	obj, index, indirect = lookupFieldOrMethod(x.typ, x.mode == variable, check.pkg, sel, false)
		call.go#L823: 			if x.mode == typexpr {
		call.go#L835: 			alt, _, _ := lookupFieldOrMethod(x.typ, x.mode == variable, check.pkg, sel, true)
		call.go#L847: 	if x.mode == typexpr {
		call.go#L884: 		x.mode = value
		call.go#L899: 			if x.mode == variable || indirect {
		call.go#L900: 				x.mode = variable
		call.go#L902: 				x.mode = value
		call.go#L925: 				if x.mode == variable {
		call.go#L956: 			x.mode = value
		call.go#L975: 	x.mode = invalid
		call.go#L1004: 	x.mode = value // anything but invalid
		call.go#L1036: 	return x.mode != invalid
		const.go#L23: 	assert(x.mode == constant_)
		const.go#L243: 		x.mode = invalid
		const.go#L255: 	assert(x.mode == constant_)
		const.go#L297: 		x.mode = invalid
		conversions.go#L21: 	constArg := x.mode == constant_
		conversions.go#L53: 			x.mode = invalid
		conversions.go#L82: 		x.mode = value // type parameters are not constants
		conversions.go#L86: 		x.mode = value
		conversions.go#L95: 		x.mode = invalid
		conversions.go#L116: 		} else if x.mode == constant_ && isInteger(x.typ) && allString(T) {
		expr.go#L131: 	if x.mode == invalid {
		expr.go#L140: 		if _, ok := ast.Unparen(e.X).(*ast.CompositeLit); !ok && x.mode != variable {
		expr.go#L142: 			x.mode = invalid
		expr.go#L145: 		x.mode = value
		expr.go#L151: 			x.mode = commaok
		expr.go#L156: 		x.mode = invalid
		expr.go#L163: 			x.mode = invalid
		expr.go#L171: 		x.mode = invalid
		expr.go#L175: 	if x.mode == constant_ {
		expr.go#L190: 	x.mode = value
		expr.go#L364: 		if c.mode == invalid {
		expr.go#L388: 	if x.mode == invalid || isTyped(x.typ) || !isValid(target) {
		expr.go#L403: 		if x.mode == constant_ {
		expr.go#L485: 		x.mode = invalid
		expr.go#L560: 	if x.mode == constant_ && y.mode == constant_ {
		expr.go#L565: 		x.mode = value
		expr.go#L602: 	x.mode = invalid
		expr.go#L621: 	if x.mode == constant_ {
		expr.go#L631: 		x.mode = invalid
		expr.go#L641: 	if y.mode == constant_ {
		expr.go#L646: 			x.mode = invalid
		expr.go#L654: 			if y.mode == invalid {
		expr.go#L655: 				x.mode = invalid
		expr.go#L664: 				x.mode = invalid
		expr.go#L671: 			if y.mode == invalid {
		expr.go#L672: 				x.mode = invalid
		expr.go#L677: 			x.mode = invalid
		expr.go#L682: 	if x.mode == constant_ {
		expr.go#L683: 		if y.mode == constant_ {
		expr.go#L698: 				x.mode = invalid
		expr.go#L741: 			x.mode = value
		expr.go#L749: 		x.mode = invalid
		expr.go#L753: 	x.mode = value
		expr.go#L785: 	if x.mode == invalid {
		expr.go#L788: 	if y.mode == invalid {
		expr.go#L789: 		x.mode = invalid
		expr.go#L800: 	if x.mode == invalid {
		expr.go#L823: 		x.mode = invalid
		expr.go#L828: 		x.mode = invalid
		expr.go#L834: 		if (x.mode == constant_ || allInteger(x.typ)) && y.mode == constant_ && constant.Sign(y.val) == 0 {
		expr.go#L836: 			x.mode = invalid
		expr.go#L841: 		if x.mode == constant_ && y.mode == constant_ && isComplex(x.typ) {
		expr.go#L846: 				x.mode = invalid
		expr.go#L852: 	if x.mode == constant_ && y.mode == constant_ {
		expr.go#L869: 	x.mode = value
		expr.go#L926: 		if x.mode == invalid {
		expr.go#L930: 		if y.mode == invalid {
		expr.go#L931: 			x.mode = invalid
		expr.go#L1004: 	if x.mode == invalid || x.mode == novalue {
		expr.go#L1024: 		x.mode = invalid
		expr.go#L1033: 	if x.mode == invalid || x.mode == novalue {
		expr.go#L1037: 		x.mode = invalid
		expr.go#L1048: 	x.mode = invalid
		expr.go#L1065: 		if x.mode == invalid {
		expr.go#L1071: 		if x.mode == invalid {
		expr.go#L1077: 		if x.mode == invalid {
		expr.go#L1098: 		if x.mode == invalid {
		expr.go#L1104: 		if x.mode == invalid {
		expr.go#L1110: 		if x.mode == invalid {
		expr.go#L1133: 		x.mode = commaok
		expr.go#L1141: 		switch x.mode {
		expr.go#L1164: 			x.mode = variable
		expr.go#L1170: 		if x.mode == invalid {
		expr.go#L1180: 		if x.mode == invalid {
		expr.go#L1191: 		x.mode = typexpr
		expr.go#L1208: 	x.mode = invalid
		expr.go#L1298: 	if t, ok := x.typ.(*Tuple); ok && x.mode != invalid {
		expr.go#L1302: 			list[i] = &operand{mode: value, expr: e, typ: v.typ}
		expr.go#L1309: 	if allowCommaOk && (x.mode == mapindex || x.mode == commaok || x.mode == commaerr) {
		expr.go#L1310: 		x2 := &operand{mode: value, expr: e, typ: Typ[UntypedBool]}
		expr.go#L1311: 		if x.mode == commaerr {
		expr.go#L1344: 	if modeset&(1<<x.mode) != 0 {
		expr.go#L1347: 		switch x.mode {
		expr.go#L1365: 		x.mode = invalid
		expr.go#L1371: 	if x.mode == value {
		expr.go#L1376: 			x.mode = invalid
		index.go#L23: 	switch x.mode {
		index.go#L30: 		x.mode = invalid
		index.go#L34: 			x.mode = typexpr
		index.go#L47: 	if x.mode == invalid {
		index.go#L58: 			if x.mode == constant_ {
		index.go#L64: 			x.mode = value
		index.go#L71: 		if x.mode != variable {
		index.go#L72: 			x.mode = value
		index.go#L80: 			x.mode = variable
		index.go#L86: 		x.mode = variable
		index.go#L92: 			x.mode = invalid
		index.go#L99: 		x.mode = mapindex
		index.go#L124: 				if x.mode != variable {
		index.go#L166: 					x.mode = invalid
		index.go#L173: 				x.mode = mapindex
		index.go#L181: 			x.mode = mode
		index.go#L190: 		x.mode = invalid
		index.go#L196: 		x.mode = invalid
		index.go#L213: 	if x.mode == invalid {
		index.go#L264: 		x.mode = invalid
		index.go#L275: 				x.mode = invalid
		index.go#L279: 			if x.mode == constant_ {
		index.go#L292: 		if x.mode != variable {
		index.go#L294: 			x.mode = invalid
		index.go#L313: 		x.mode = invalid
		index.go#L317: 	x.mode = value
		index.go#L322: 		x.mode = invalid
		index.go#L400: 	if x.mode != constant_ {
		index.go#L420: 	if x.mode == invalid {
		index.go#L426: 	if x.mode == invalid {
		index.go#L436: 	if x.mode == constant_ {
		infer.go#L68: 		if arg.mode == invalid {
		infer.go#L168: 		if arg.mode == invalid {
		literals.go#L64: 			x.mode = invalid
		literals.go#L69: 	if x.mode == invalid {
		literals.go#L75: 		x.mode = invalid
		literals.go#L103: 		x.mode = value
		literals.go#L107: 		x.mode = invalid
		literals.go#L262: 			if x.mode == invalid {
		literals.go#L265: 			if x.mode == constant_ {
		literals.go#L312: 			x.mode = invalid
		literals.go#L317: 	x.mode = value
		operand.go#L60: 	mode operandMode
		operand.go#L116: 		if x.mode == nilvalue {
		operand.go#L127: 		if x.mode == value && x.typ == Typ[UntypedNil] {
		operand.go#L138: 		switch x.mode {
		operand.go#L156: 	switch x.mode {
		operand.go#L172: 	buf.WriteString(operandModeString[x.mode])
		operand.go#L175: 	if x.mode == constant_ {
		operand.go#L288: 		x.mode = invalid
		operand.go#L292: 	x.mode = constant_
		operand.go#L300: 		return x.mode == nilvalue
		operand.go#L302: 		return x.mode == value && x.typ == Typ[UntypedNil]
		operand.go#L313: 	if x.mode == invalid || !isValid(T) {
		range.go#L40: 	if isTypes2 && x.mode != invalid && sValue == nil && !check.hasCallOrRecv {
		range.go#L56: 				mode: constant_,
		range.go#L67: 	if x.mode != invalid {
		range.go#L139: 				y.mode = value
		range.go#L175: 				if x.mode != invalid && !isInteger(x.typ) {
		range.go#L180: 				y.mode = value
		recording.go#L23: 	switch x.mode {
		recording.go#L39: 		check.rememberUntyped(x.expr, false, x.mode, typ.(*Basic), val)
		recording.go#L41: 		check.recordTypeAndValue(x.expr, x.mode, typ, val)
		recording.go#L100: 	if a[0].mode == invalid {
		stmt.go#L242: 		if x.mode == invalid || v.mode == invalid {
		stmt.go#L246: 		if v.mode == invalid {
		stmt.go#L252: 		if res.mode == invalid {
		stmt.go#L255: 		if v.mode != constant_ {
		stmt.go#L448: 		switch x.mode {
		stmt.go#L468: 		if ch.mode == invalid || val.mode == invalid {
		stmt.go#L489: 		if x.mode == invalid {
		stmt.go#L499: 		if x.mode == invalid {
		stmt.go#L531: 			if x.mode == invalid {
		stmt.go#L612: 		if x.mode != invalid && !allBoolean(x.typ) {
		stmt.go#L639: 			if x.mode != invalid && !Comparable(x.typ) && !hasNil(x.typ) {
		stmt.go#L641: 				x.mode = invalid
		stmt.go#L646: 			x.mode = constant_
		stmt.go#L731: 			if x.mode != invalid {
		stmt.go#L840: 			if x.mode != invalid && !allBoolean(x.typ) {
		typexpr.go#L21: 	x.mode = invalid
		typexpr.go#L108: 		x.mode = constant_
		typexpr.go#L115: 		x.mode = typexpr
		typexpr.go#L128: 		x.mode = variable
		typexpr.go#L132: 		x.mode = value
		typexpr.go#L136: 		x.mode = builtin
		typexpr.go#L139: 		x.mode = value
		typexpr.go#L260: 		switch x.mode {
		typexpr.go#L275: 		switch x.mode {
		typexpr.go#L492: 	if x.mode != constant_ {
		typexpr.go#L493: 		if x.mode != invalid {